package SuanFa;

import java.util.Scanner;

/**
 *  古典问题：有一对兔子，从出生后第3个月起每个月都生一对兔子，小兔子长到第三个月后每个月又生一对兔子，假如兔子都不死，问每个月的兔子总数为多少？
 * 程序分析:
 第一个月-----------------1
 第二个月-----------------1
 第三个月-----------------2
 第四个月-----------------3
 第五个月-----------------5
 第六个月-----------------8
 第七个月-----------------13
 ...                          ...

 从中发现，从第三个月开始，前两个月兔子数之后为第三个兔子总数
 */
public class Test1 {
    public static void main(String[] args) {
        while (true) {
            System.out.print("Input witch month you want to know the Rabbit num please:");
            Scanner scan = new Scanner(System.in);
            String read = scan.nextLine();
            boolean isNum = read.matches("[0-9]+");
            if (isNum){
                System.out.println("The month is:"+read);
                int i = Integer.parseInt(read);
                sun(i);
                System.out.printf("The %d month rabbit num is:%d\n",i,sun(i));
            }else {
                System.out.println("Your input num format was wrong");

            }
        }


    }

    private static int sun(Integer month){
        int[] m = new int[month];
        m[0]=m[1]=1;
        int num =0;
        for (int j=0;j<m.length;j++){
            if (j<=1){
                //System.out.printf("The %d month rabbit num is:1\n",j+1);
                num=m[j];

            }else {
                m[j]=m[j-1]+m[j-2];
                //System.out.printf("The %d month rabbit num is:%d\n",j+1,m[j]);
                num=m[j];
            }
        }
        return num;
    }
}
